<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 1. 函数名直接调用
    function log(){
      console.log('this指向谁?', this)
    }
    // log()
    // window.log()

    // 2. 函数添加给某个对象，哪个对象调用，this就指向对应的对象
    const obj = {
      eat(){
        console.log(this)
      }
    }
    // obj.eat()

    // 3. 通过new 关键字 执行函数，函数被当作构造函数处理，对应的this指向实例对象
    function Person(){
      console.log(this)
    }
    // new Person()

    // 4. 箭头函数没有this，使用的this实际是上下文中的this
    const obj2 = {
      run: ()=>{
        console.log(this)
      }
    }
    // obj2.run()
  </script>
</body>
</html>